#anext
Description: Retrieve the next item from an asynchronous iterator (by calling the object's __anext__
method). See also the next function.
async def anext(async_iterator):
'''
Retrieve the next item from the asynchronous iterator.
Raises StopAsyncIteration if there is no next item.
:param async_iterator: An asynchronous iterator
:return: The next item from the iterator
'''
async def anext(async_iterator, default):
'''
Retrieve the next item from the asynchronous iterator.
Returns default if there is no next item.
:param async_iterator: An asynchronous iterator
:param default: Default value to return if no next item
:return: The next item from the iterator or default
'''
Example:
import asyncio
# Asynchronous iterator
class AsyncIterator:
def __init__(self, stop):
self.__stop = stop
self.__current = 0
async def __anext__(self):
if self.__current < self.__stop:
await asyncio.sleep(0.1) # Simulate asynchronous operation
self.__current += 1
return self.__current - 1
else:
raise StopAsyncIteration
# Asynchronous function
async def main():
async_iterator = AsyncIterator(10)
while (value := await anext(async_iterator, None)) is not None:
print(value)
# Run
asyncio.run(main())